With the advent of packet-switched networks (e.g., the Internet) and other communication technologies, myriad services provided over communication networks are available to consumers. Voice over Internet Protocol (“VoIP”) telephone service is one example of such a service. Typically, end users utilize computing devices (e.g., personal computers or Internet Protocol (“IP”) based telephones) to access and use network services. End user computing devices are often referred to as customer premises equipment (“CPE”).
CPE is often provided to an end user in an unprovisioned state, meaning that the CPE has not yet been configured to access and use the network services. For example, when an end user purchases a Session Initiation Protocol (“SIP”) telephone, the telephone has usually not yet been provisioned for the telephone number and/or the particular telephone service features (e.g. call waiting) subscribed to (or that will be subscribed to) by the end user. When the CPE is connected to the service network serving the end user, the CPE may be remotely provisioned for the services subscribed to by the end user.
The provisioning of CPE typically involves one or more configuration files being provided to the CPE over the service network. The CPE is able to use the parameters included in the configuration files to register with the service network and to access and use the services to which the end user subscribes. Configuration files are also used to update the parameters of the CPE. For example, CPE parameters may be updated to reflect a change in the service plan subscribed to by the end user.
The security and cost associated with provisioning CPE are significant concerns of many service providers. Unprotected remote provisioning of CPE provides unscrupulous persons with opportunity for gaining unauthorized access to network services and/or to the CPE. However, there are reasons why remote provisioning is preferred by many service providers, including the substantial costs associated with alternatively pre-provisioning the CPE before it is provided to end users.
Accordingly, service providers have sought to develop different technologies for securing communications related to remote provisioning of CPE. Unfortunately, conventional provisioning technologies are not without shortcomings with respect to security and/or costs. For example, some service providers encrypt configuration files used for remote provisioning of CPE. Encryption generally relies upon an encryption/decryption key, which is commonly known as a symmetric key, or a pair of complementary encryption keys, which are commonly known as a public key and a private key. Decryption keys are provided to the CPE so that provisioning configuration files can be decrypted. However, encryption raises the costs of provisioning, especially when a different decryption key is used for each end user device. The costs are further increased if each different decryption key is preloaded in an end user device before the device is provided to the end user. Of course, these additional costs will almost certainly be passed on to subscribers in one form or another.
Conventional, less-expensive encryption alternatives typically sacrifice security in order to minimize costs. For example, the use of the same decryption key for more than one end user device exposes a service provider to attack. In particular, a computer hacker may be able to copy a configuration file intended for an authorized end user device. Because the same decryption key is shared by more than one end user device, the copy can be used by an unauthorized end user device (having the same decryption key as the authorized end user device) to steal the network services intended for the user of the authorized end user device. This is commonly referred to as theft of service by man-in-the-middle attack.
For at least these reasons, there is a need for systems and methods for securely and cost-effectively configuring network devices.